﻿using NP.BPMReportPlatform.Entities.BPM_Business;
using NP.BPMReportPlatform.Performance.Dto;
using System;
using System.IO;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using static NP.BPMReportPlatform.Performance.Dto.PerformanceDto;

namespace NP.BPMReportPlatform.Performance
{
    /// <summary>
    /// 员工绩效接口服务
    /// </summary>
    public interface IPerformanceService : IApplicationService
    {
        /// <summary>
        /// 员工绩效查询数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<PagedResultDto<GetPerformanceResultOutput>> GetPerformanceToDo(GetPerformanceResultInput input);

        /// <summary>
        /// 提交
        /// </summary>
        /// <param name="entity">数据</param>
        Task<string> Submit(SubmitScopeDto entity);

        /// <summary>
        /// 检查待办当前状态
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<bool> CheckToDoData(int id);

        /// <summary>
        /// 获取表单明细
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<object> GetDetailById(int id);

        /// <summary>
        /// 导出
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        Task<MemoryStream> ExportResultDetailAsync(PerformHistoryExportDto data);
    }
}